/**
 * Copyright (c) 2020 Coder League
 * All rights reserved.
 *
 * File：FunctionDaoExtension.java
 * History:
 *         2020年12月20日: Initially created, Chrise.
 */
package club.coderleague.cfss.dao.extension;

import java.util.List;
import java.util.Map;

import club.coderleague.cfss.domain.entities.Functions;
import club.coderleague.data.jpa.repository.DataRepositoryExtension;

/**
 * 功能数据访问对象扩展。
 * @author Chrise
 */
public interface FunctionDaoExtension extends DataRepositoryExtension {
	/**
	 * 根据父级功能主键和功能类型查询已授权功能。
	 * @author Chrise 2020年12月20日
	 * @param parentfunc 父级功能主键。
	 * @param functype 功能类型。
	 * @return 已授权功能。
	 */
	List<Functions> findAuthorizationByParentfuncAndFunctype(Long parentfunc, List<Integer> functype);
	
	/**
	 * 获取功能管理数据。
	 * @author Chrise 2020年12月20日
	 * @param params 关键字查询。
	 * @return 功能管理数据。
	 */
	List<Map<String, Object>> getFuncMgrListDao(Map<String, Object> params);
	
	/**
	 * 查询父级功能。
	 * @author Chrise 2020年12月20日
	 * @return 父级功能。
	 */
	List<Map<String, Object>> getParentFuncSelectListDao();
	
	/**
	 * 查询重复。
	 * @author Chrise 2020年12月20日
	 * @param funcname 功能名称。
	 * @param parentfunc 父级功能。
	 * @param functype 功能类型。
	 * @param entityid 功能标识。
	 * @return 查重结果。
	 */
	Boolean getRepeatDataByFuncNameOrParentFuncOrFuncTypeDao(String funcname, Long parentfunc, Integer functype, Long entityid);
	
	/**
	 * 查询功能详情。
	 * @author Chrise 2020年12月20日
	 * @param entityid 功能标识。
	 * @return 功能详情数据。
	 */
	Map<String, Object> getFunctionsDetailDataByFuncidDao(String entityid);
}
